cmake_minimum_required(VERSION 3.12)
project(src)

set(CMAKE_CXX_STANDARD 14)

include_directories(base)
include_directories(base/jsoncpp)
include_directories(base/jsoncpp/json)
include_directories(base/pb/protocol)
include_directories(base/security)
include_directories(base/slog)
include_directories(db_proxy_server)
include_directories(db_proxy_server/business)
include_directories(file_server)
include_directories(http_msg_server)
include_directories(libsecurity/android/jni)
include_directories(libsecurity/include)
include_directories(libsecurity/src)
include_directories(login_server)
include_directories(msfs)
include_directories(msg_server)
include_directories(push_server)
include_directories(push_server/bufferloop)
include_directories(push_server/sigslot)
include_directories(push_server/socket)
include_directories(push_server/thread)
include_directories(push_server/timer)
include_directories(push_server/type)
include_directories(route_server)
include_directories(slog)
include_directories(test)

add_executable(src
        base/jsoncpp/json/assertions.h
        base/jsoncpp/json/autolink.h
        base/jsoncpp/json/config.h
        base/jsoncpp/json/features.h
        base/jsoncpp/json/forwards.h
        base/jsoncpp/json/json.h
        base/jsoncpp/json/reader.h
        base/jsoncpp/json/value.h
        base/jsoncpp/json/writer.h
        base/jsoncpp/json_batchallocator.h
        base/jsoncpp/json_internalarray.inl
        base/jsoncpp/json_internalmap.inl
        base/jsoncpp/json_reader.cpp
        base/jsoncpp/json_tool.h
        base/jsoncpp/json_value.cpp
        base/jsoncpp/json_valueiterator.inl
        base/jsoncpp/json_writer.cpp
        base/pb/protocol/IM.BaseDefine.pb.cc
        base/pb/protocol/IM.BaseDefine.pb.h
        base/pb/protocol/IM.Buddy.pb.cc
        base/pb/protocol/IM.Buddy.pb.h
        base/pb/protocol/IM.File.pb.cc
        base/pb/protocol/IM.File.pb.h
        base/pb/protocol/IM.Group.pb.cc
        base/pb/protocol/IM.Group.pb.h
        base/pb/protocol/IM.Login.pb.cc
        base/pb/protocol/IM.Login.pb.h
        base/pb/protocol/IM.Message.pb.cc
        base/pb/protocol/IM.Message.pb.h
        base/pb/protocol/IM.Other.pb.cc
        base/pb/protocol/IM.Other.pb.h
        base/pb/protocol/IM.Server.pb.cc
        base/pb/protocol/IM.Server.pb.h
        base/pb/protocol/IM.SwitchService.pb.cc
        base/pb/protocol/IM.SwitchService.pb.h
        base/security/security.h
        base/slog/slog_api.h
        base/atomic.h
        base/Base64.cpp
        base/Base64.h
        base/BaseSocket.cpp
        base/BaseSocket.h
        base/Condition.cpp
        base/Condition.h
        base/ConfigFileReader.cpp
        base/ConfigFileReader.h
        base/EncDec.cpp
        base/EncDec.h
        base/EventDispatch.cpp
        base/EventDispatch.h
        base/http_parser.cpp
        base/http_parser.h
        base/HttpClient.cpp
        base/HttpClient.h
        base/HttpParserWrapper.cpp
        base/HttpParserWrapper.h
        base/im_conn_util.cpp
        base/im_conn_util.h
        base/imconn.cpp
        base/imconn.h
        base/impdu.h
        base/ImPduBase.cpp
        base/ImPduBase.h
        base/libbase.a
        base/Lock.cpp
        base/Lock.h
        base/log4z.cpp
        base/log4z.h
        base/netlib.cpp
        base/netlib.h
        base/ostype.h
        base/public_define.h
        base/ServInfo.cpp
        base/ServInfo.h
        base/singleton.h
        base/Task.h
        base/Thread.cpp
        base/Thread.h
        base/ThreadPool.cpp
        base/ThreadPool.h
        base/TokenValidator.cpp
        base/TokenValidator.h
        base/util.cpp
        base/util.h
        base/UtilPdu.cpp
        base/UtilPdu.h
        base/version.h
        db_proxy_server/business/AudioModel.cpp
        db_proxy_server/business/AudioModel.h
        db_proxy_server/business/Common.h
        db_proxy_server/business/DepartAction.cpp
        db_proxy_server/business/DepartAction.h
        db_proxy_server/business/DepartModel.cpp
        db_proxy_server/business/DepartModel.h
        db_proxy_server/business/ExterLogin.cpp
        db_proxy_server/business/ExterLogin.h
        db_proxy_server/business/FileAction.cpp
        db_proxy_server/business/FileAction.h
        db_proxy_server/business/FileModel.cpp
        db_proxy_server/business/FileModel.h
        db_proxy_server/business/GroupAction.cpp
        db_proxy_server/business/GroupAction.h
        db_proxy_server/business/GroupMessageModel.cpp
        db_proxy_server/business/GroupMessageModel.h
        db_proxy_server/business/GroupModel.cpp
        db_proxy_server/business/GroupModel.h
        db_proxy_server/business/InterLogin.cpp
        db_proxy_server/business/InterLogin.h
        db_proxy_server/business/Login.cpp
        db_proxy_server/business/Login.h
        db_proxy_server/business/LoginStrategy.h
        db_proxy_server/business/MessageContent.cpp
        db_proxy_server/business/MessageContent.h
        db_proxy_server/business/MessageCounter.cpp
        db_proxy_server/business/MessageCounter.h
        db_proxy_server/business/MessageModel.cpp
        db_proxy_server/business/MessageModel.h
        db_proxy_server/business/RecentSession.cpp
        db_proxy_server/business/RecentSession.h
        db_proxy_server/business/RelationModel.cpp
        db_proxy_server/business/RelationModel.h
        db_proxy_server/business/SessionModel.cpp
        db_proxy_server/business/SessionModel.h
        db_proxy_server/business/UserAction.cpp
        db_proxy_server/business/UserAction.h
        db_proxy_server/business/UserModel.cpp
        db_proxy_server/business/UserModel.h
        db_proxy_server/async.h
        db_proxy_server/AutoPool.cpp
        db_proxy_server/AutoPool.h
        db_proxy_server/CachePool.cpp
        db_proxy_server/CachePool.h
        db_proxy_server/db_proxy_server.cpp
        db_proxy_server/DBPool.cpp
        db_proxy_server/DBPool.h
        db_proxy_server/HandlerMap.cpp
        db_proxy_server/HandlerMap.h
        db_proxy_server/hiredis.h
        db_proxy_server/ProxyConn.cpp
        db_proxy_server/ProxyConn.h
        db_proxy_server/ProxyTask.cpp
        db_proxy_server/ProxyTask.h
        db_proxy_server/read.h
        db_proxy_server/sds.h
        db_proxy_server/SyncCenter.cpp
        db_proxy_server/SyncCenter.h
        file_server/config_util.cpp
        file_server/config_util.h
        file_server/file_client_conn.cpp
        file_server/file_client_conn.h
        file_server/file_msg_server_conn.cpp
        file_server/file_msg_server_conn.h
        file_server/file_server.cpp
        file_server/file_server_util.h
        file_server/fileserver.conf
        file_server/offline_file_util.h
        file_server/transfer_task.cpp
        file_server/transfer_task.h
        file_server/transfer_task_manager.cpp
        file_server/transfer_task_manager.h
        http_msg_server/AttachData.cpp
        http_msg_server/AttachData.h
        http_msg_server/DBServConn.cpp
        http_msg_server/DBServConn.h
        http_msg_server/http_msg_server.cpp
        http_msg_server/HttpConn.cpp
        http_msg_server/HttpConn.h
        http_msg_server/HttpPdu.cpp
        http_msg_server/HttpPdu.h
        http_msg_server/HttpQuery.cpp
        http_msg_server/HttpQuery.h
        http_msg_server/RouteServConn.cpp
        http_msg_server/RouteServConn.h
        libsecurity/android/jni/aes.h
        libsecurity/android/jni/aes_core.cpp
        libsecurity/android/jni/aes_locl.h
        libsecurity/android/jni/base64.cpp
        libsecurity/android/jni/base64.h
        libsecurity/android/jni/md5.cpp
        libsecurity/android/jni/md5.h
        libsecurity/android/jni/security.cpp
        libsecurity/include/security.h
        libsecurity/lib/mac/README
        libsecurity/src/aes.h
        libsecurity/src/aes_core.cpp
        libsecurity/src/aes_locl.h
        libsecurity/src/base64.cpp
        libsecurity/src/base64.h
        libsecurity/src/md5.cpp
        libsecurity/src/md5.h
        libsecurity/src/security.cpp
        log4cxx/console.cpp
        log4cxx/inputstreamreader.cpp
        log4cxx/socketoutputstream.cpp
        login_server/HttpConn.cpp
        login_server/HttpConn.h
        login_server/ipparser.cpp
        login_server/ipparser.h
        login_server/login_server.cpp
        login_server/LoginConn.cpp
        login_server/LoginConn.h
        msfs/CriticalSection.h
        msfs/FileLin.cpp
        msfs/FileLin.h
        msfs/FileManager.cpp
        msfs/FileManager.h
        msfs/HttpConn.cpp
        msfs/HttpConn.h
        msfs/main.cpp
        msfs/Portable.h
        msfs/StringUtils.cpp
        msfs/StringUtils.h
        msg_server/AttachData.cpp
        msg_server/AttachData.h
        msg_server/DBServConn.cpp
        msg_server/DBServConn.h
        msg_server/FileHandler.cpp
        msg_server/FileHandler.h
        msg_server/FileServConn.cpp
        msg_server/FileServConn.h
        msg_server/GroupChat.cpp
        msg_server/GroupChat.h
        msg_server/ImUser.cpp
        msg_server/ImUser.h
        msg_server/jsonxx.cpp
        msg_server/jsonxx.h
        msg_server/LoginServConn.cpp
        msg_server/LoginServConn.h
        msg_server/msg_server.cpp
        msg_server/MsgConn.cpp
        msg_server/MsgConn.h
        msg_server/PushServConn.cpp
        msg_server/PushServConn.h
        msg_server/RouteServConn.cpp
        msg_server/RouteServConn.h
        push_server/bufferloop/buffer_loop.hpp
        push_server/sigslot/sigslot.h
        push_server/socket/base_handler.hpp
        push_server/socket/base_io_stream.cpp
        push_server/socket/base_io_stream.h
        push_server/socket/base_msg.h
        push_server/socket/base_socket.hpp
        push_server/socket/base_thread.hpp
        push_server/socket/epoll_io_loop.cpp
        push_server/socket/epoll_io_loop.h
        push_server/socket/io_loop.cpp
        push_server/socket/io_loop.h
        push_server/socket/socket_io.h
        push_server/socket/socket_io_define.h
        push_server/socket/ssl_client_async.cpp
        push_server/socket/ssl_client_async.h
        push_server/socket/tcp_client_async.cpp
        push_server/socket/tcp_client_async.h
        push_server/socket/tcp_server.cpp
        push_server/socket/tcp_server.h
        push_server/socket/tcp_session_async.cpp
        push_server/socket/tcp_session_async.h
        push_server/thread/base_thread.hpp
        push_server/timer/Timer.hpp
        push_server/type/base_type.h
        push_server/apns_client.cpp
        push_server/apns_client.h
        push_server/apns_client_handler.cpp
        push_server/apns_client_handler.h
        push_server/apns_feedback_handler.cpp
        push_server/apns_feedback_handler.h
        push_server/apns_msg.cpp
        push_server/apns_msg.h
        push_server/byte_stream.cpp
        push_server/byte_stream.h
        push_server/ConfigFileReader.cpp
        push_server/ConfigFileReader.h
        push_server/jsonxx.cpp
        push_server/jsonxx.h
        push_server/main.cpp
        push_server/pdu_msg.cpp
        push_server/pdu_msg.h
        push_server/push_app.cpp
        push_server/push_app.h
        push_server/push_app_define.h
        push_server/push_define.h
        push_server/push_server.cpp
        push_server/push_server.h
        push_server/push_server_handler.cpp
        push_server/push_server_handler.h
        push_server/push_session.cpp
        push_server/push_session.h
        push_server/push_session_handler.cpp
        push_server/push_session_handler.h
        push_server/session_manager.cpp
        push_server/session_manager.h
        route_server/route_server.cpp
        route_server/RouteConn.cpp
        route_server/RouteConn.h
        route_server/UserInfo.cpp
        route_server/UserInfo.h
        slog/slog_api.cpp
        slog/slog_api.h
        test/Client.cpp
        test/Client.h
        test/ClientConn.cpp
        test/ClientConn.h
        test/Common.h
        test/IPacketCallback.h
        test/playsound.h
        test/playsound.mm
        test/SeqAlloctor.cpp
        test/SeqAlloctor.h
        test/test_client.cpp
        tools/daeml.cpp
        build.sh
        make_hiredis.sh
        make_log4cxx.sh)
